Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2021
Тип роботи:
Звіт
Предмет:
Алгоритмізація та програмування

Частина тексту файла

Національний технічний університет України  «Київський політехнічний інститут імені Ігоря Сікорського» Алгоритмізація та програмування 1: Базові концепції програмування ЗВІТ До модульної контрольної роботи №1 Варіант 25 Дата «15» грудня 2021 Завдання Результат роботи повинен відобразити: 1.    Обернену матрицю; 2.    Розшифроване повідомлення. / Код програми //МКР-2 Шепетько ТР-15 15.12.2021 #include <stdio.h> #include <math.h> #define RED "\x1b[31m" #define BLUE "\x1b[34m" #define RESET "\x1b[0m" #define Yellow "\x1b[33m" #define Green "\x1b[32m" int main(void) { int k=0; char characters[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; int n[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}; int array[2][2]; int array2[2][2]; int arrayf[2][2]; int array1[4]; char kod[] = {'b','h','b','z'}; printf(""RED"Дані, що відомі програмі зараз:\n"RESET" Символи:\n"BLUE"characters[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; "RESET"\nВідповідні індекси:"Yellow"\nn[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};"RESET"\n\n"); printf(""RED"Введіть ключ (початкову матрицю):"RESET""); repet: //Задання значень матриці-ключа for(int i=0;i<2;i++){ for(int j=0;j<2;j++){ scanf("%i", &array[i][j]); } } //Пошук індексів відповідних символів for(int j=0;j<sizeof(kod);j++){ for(int i=0;i<sizeof(characters);i++){ if(kod[k]==characters[i]){ array1[k]=n[i]; k++; } } } //Обрахунок детермінанта float determinant = array[0][0]*array[1][1]-array[0][1]*array[1][0]; if(determinant!=0){ printf(""RED"\nДетермінант заданої матриці:"RESET" %.0f\n",determinant); } if(determinant==0){ printf("Помилка, спробуйте ще\n"); goto repet; } printf(""RED"Індекси заданих символів:"RESET" "); for(int j=0;j<sizeof(kod);j++){ printf("%d ",array1[j]); } printf("\n"); printf(""RED"Обернена і перетворена матриця:"RESET"\n"); array2[0][0]=array[1][1]; array2[0][1]=-array[0][1]; array2[1][0]=-array[1][0]; array2[1][1]=array[0][0]; for(int i=0;i<2;i++){ for(int j=0;j<2;j++){ float b=array2[i][j]; float a=array2[i][j]/determinant; if(a != round(a) || a<0){ for(int k=1;a != round(a) || a<0;k++){ double temp = b; double el = (temp+26*k)/determinant; if(el==round(el) && el>0){ a=el; break; } } } array2[i][j]=a; printf("%d ",array2[i][j]); } printf("\n"); } arrayf[0][0]=(array2[0][0]*array1[0]+array2[0][1]*array1[1])%26; arrayf[1][0]=(array2[0][0]*array1[2]+array2[0][1]*array1[3])%26; arrayf[0][1]=(array2[1][0]*array1[0]+array2[1][1]*array1[1])%26; arrayf[1][1]=(array2[1][0]*array1[2]+array2[1][1]*array1[3])%26; printf(""RED"Індекси зашифрованого слова:"RESET"\n"); for(int i=0;i<2;i++){ for(int j=0; j<2;j++){ printf("%d ",arrayf[i][j]); } printf("\n"); } printf("\n"Green"Зашифроване слово:"RESET" "); for(int i=0;i<2;i++){ for(int j=0;j<2;j++){ printf("%c",characters[arrayf[i][j]]); } } return 0; } Результати виконання Вивід на екран монітора результату / Висновок: Виконано МКР-2: знайдено детермінант матриці-ключа, обчислено і виведено обернену і перетворену матрицю, розшифровано слово. Посилання на repl.it: https://replit.com/join/kqmycuossa-tr-15shiepietko
Антиботан аватар за замовчуванням

08.05.2023 11:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини